Almost every business organization is dependent upon computers for the management of import data including accounting, inventory, and/or customer information. Often these computers must be accessible twenty four hours a day. It is not uncommon for companies to employ a technician off site to manage and maintain their computer system. If a computer crashes or experiences a system failure, the company will contact the off-site technician and he/she will then visit the company and try to fix the computer.
Wide scale proliferation of home computer usage is also very common in this modern day and age. Nearly every household has a personal computer, with some having more than one. Users may use their personal computers for word processing, home financial accounting, or even simple Internet surfing. Unfortunately, personal home computer user's usually do not employ off-site technicians to manage and maintain their computer system. Accordingly, when their home based computer system crashes, they must often take the computer to a retail/repair shop in order to have a technician diagnose and/or test the problem and repair the computer.
A computer crash is a failure of the computer to either BOOT properly or a software error which may occur when running a program. The first type of crash is typically more serious and may altogether prevent a computer from operating. Whenever you turn on your computer, the first thing you see is the BIOS software doing its thing. On many machines, the BIOS displays text describing things like the amount of memory installed in your computer, the type of hard disk, the space available, and so on. It turns out that, during this boot sequence, the BIOS is doing a remarkable amount of work to get your computer ready to run. After checking the CMOS Setup and loading the interrupt handlers, the BIOS determines whether there is an operational video card. Most video cards have a miniature BIOS (mini-BIOS) of their own that initializes a local memory and graphics processor resident on the video card. If the video card does not have its own mini-BIOS, there is usually video driver information located on another Read Only Memory (ROM) on the motherboard that the BIOS can load.
Next, the BIOS checks to see if this is a cold boot or a reboot. It does this by checking the value at a particular memory address location on the local hard drive, usually memory address location 0000:0472. A value of 1234h in this memory address location indicates a reboot. Any other value, such as 0000h, indicates a clean start-up or cold boot. If it is a cold boot, the BIOS verifies RAM by performing a read/write test of each memory address. The BIOS then checks the PS/2 ports or USB ports for a keyboard and a mouse. It looks for any peripheral component interconnect (PCI) bus and, if the BIOS finds one, it then checks all the PCI cards coupled to the PCI bus. During this process, if the BIOS finds any errors, it will notify a user by a series of beeps or a text message displayed on the screen. An error at this point is almost always a hardware problem.
Assuming there have been no hardware errors at this point in time, the BIOS then displays some details about the local computer system. This typically includes information about the type of display coupled to the local computer, information about the type of processor, information about any existent floppy drive, information about any hard drive (including information on the amount of available memory), and information about the BIOS version/revision and date of the version/revision. After displaying this information, any special drivers, such as the ones for small computer system interface (SCSI) adapters, are then loaded, and the BIOS displays the information relevant to each of these drivers.
Once the BIOS has recognized and configured/initiated all of the devices, the BIOS then looks at the sequence of storage devices identified as possible BOOT devices in the CMOS Setup. The term BOOT refers to the process of launching an operating system on the local host computer. The BIOS will try to initiate a BOOT sequence from the first device identified in the CMOS Setup. If the BIOS does not find the device, it will try the next device in the list, and so on. If the BIOS does find the device, it will attempt to BOOT from the device. In most instances, the BIOS will be directed to a specific area on a local hard drive where the system will find the proper files for BOOTING UP the operating system on the local host computer. If the BIOS does not find any BOOT device and/or does not find the proper files on any device, the BOOT process will halt. If the BOOT process halts, the computer may flash an error message and will typically display what is commonly referred to as “the blue screen of death”, which is simply a completely blue screen shown on the monitor/display coupled to the local host computer.
Software does exist which allows for some remote operation and diagnosis of computers such that some repairs may be performed on a local host computer without having to take the computer into a retail/repair outlet. For example, Microsoft® NetMeeting® allows technicians who are highly trained with computer repairs, both hardware and software, to remotely connect to a local host computer running on one of Microsoft's platforms/operating systems (i.e. WINDOWS 2000® or WINDOWS XP®). Utilizing the Microsoft® NetMeeting®, the technician can remotely access and control the local host computer in order to diagnose and attempt to repair a computer problem from a remote location.
The only problem with these types of software devices is that they will only work so long as the operating system is able to run and the local host computer is able to connect to the network. If the local host computer is unable to fully and completely boot, then it cannot connect to the network and the software will not work.
U.S. Pat. No. 5,732,268 issued to Bizzarri (hereinafter referred to as “the '268 Patent”) discloses an extended basic input and output system (E-BIOS) which includes code for sensing when a computer does not boot properly. More specifically, Bizzarri teaches that if a computer does not boot properly, a second portion of the code, known as E-BIOS, directs the local host computer to establish communication with a remote diagnostics and repair computer. Once communication is established a master code kernel on the remote computer downloads a slave kernel to the random access memory (RAM) of the local computer, allowing an operator at the diagnostics and repair computer to access and modify code and data in the memory devices of the local host computer.
There are several limitations to the '268 Patent. First, the software for the extended bios (E-BIOS) is resident on the local host computer and, therefore, in order for the local host computer to execute the E-BIOS software, the computer must, at the very least be sufficiently operable for executing the software. Additionally, the local computer must be sufficiently operable in order to communicate with the remote computer over an established communications link. Accordingly, in a situation where the boot error is severe and the local host computer is totally inoperable, and unable to BOOT at all, then the E-BIOS solution proposed by the '268 Patent will not work.
Additionally, BIOS is hardware specific. Accordingly, a solution which utilizes a pre-loaded E-BIOS requires that the software be specifically tailored to the specific users computer and the system in which it is utilized. Thus, software must be customized for each user and loaded into the user's computer. If the system changes, if additional or new peripherals are utilized, then the E-BIOS must be updated or it will not function properly.
Finally, in the '268 Patent, the slave kernel is downloaded to the RAM of the host compute. In a total system crash where the only option is a reboot, this solution will not work because the RAM of the host computer will be instantly cleared upon reboot and the slave kernel software will be lost. Accordingly, as described earlier, this solution will only work where the local host computer is, at the very least, operable and able to execute the software of the slave kernel before any reboot.
Similarly, U.S. Pat. No. 6,651,190 issued to Worley, et al. (hereinafter referred to as “the '190 Patent”) discloses a remote maintenance device for monitoring and controlling a host computer and its operating system. The device includes a microprocessor which connects to the host computer and a wireless connection to the Internet which connects the device to a remote computer. In short, the microprocessor receives status data bout the present state of the host computer and transmits this data to a remote computer via the wireless connection. The remote computer can then send serial commands back to the device in order to further analyze and control the host computer.
While the device of the '190 Patent is itself wholly separate from the computer and can be used to diagnose many technical problems, the device in the '190 Patent does not teach any method for recovery of a Boot error. More specifically, if the host computer does not boot properly and displays the “blue screen of death”, the '190 Patent teaches that this problem can be diagnosed or detected; but, short of technician intervention, the '190 Patent does not disclose any method for remedying this situation.
In summary, all of these previously designed solutions for remote diagnosis and repair of local host computers are highly dependent upon the operability of the host computer. If the host computer is completely non-operational, the ability of the proposed solution to actually both diagnose and repair any problem is severely limited. Accordingly, what is needed is a device for remote diagnostic and repair which is particularly useful in situations where the local host computer has failed to properly BOOT (or REBOOT), and is completely non-operational, displaying the “blue screen of death”.
What is further needed is a device which will work with any type of hardware/computer setup and which is compatible with multiple operating systems such that there is no need to modify a user's computer in order to use the device to remotely diagnose and repair any BOOT problems or errors.